Computer networks can include a number of different network entities such as nodes, access points, intermediate servers, application servers, and the like. In such networks, many of the network entities are capable of communicating over any one of a number of different communication interfaces. Accordingly, it is beneficial to use such communication interfaces in a manner which maximizes network resource utilization.
To efficiently use different network resources, usage policies can be implemented in at least some of the network entities with respect to the usage of certain interfaces. For example, application steering and blocking policies can be implemented which help to define permissible usage of the various interfaces based on one or more user defined policies which may include, for example, the billing structures, the relative ranking of a particular user, the type of application, the Quality of Service (QoS) requirements of the application, and the like.
Application steering policies can specify which of the particular interface(s) and/or link(s) are available for communicating to or from a network entity that is running a particular type of application. These application steering policies are designed to allow or encourage the sending of packets associated with a particular application over certain of the interfaces. Application blocking policies can also be defined which block or prevent particular interface(s) and/or link(s) from being used to send packets which originate from a particular application. These application blocking policies are designed to prevent or discourage the use of certain interfaces (and their corresponding links) for communicating packets associated with a particular application based on the requirements of the particular application. For example, in a network entity which has an 802.11 interface and a cellular interface, a policy could specify that traffic associated with a video application should only use an 802.11 interface and an 802.11 link, while traffic associated with a voice application can use either the cellular interface and a cellular link or the 802.11 interface. Thus, by implementing application steering and/or blocking policies at different network entities throughout the network, certain applications can be required to use particular interfaces (and corresponding links) for communication.
In port-based application steering/blocking, an application steering/blocking module can examine an upper layer identifier, such as a port number or Internet Protocol (IP) field, in a particular data packet to determine how to steer/block the data packet. For example, a network entity can determine which application a data packet is associated with by examining the port number associated with the data packet. Once the network entity knows the particular application the data packet is associated with, the network entity can then determine, per its steering/blocking policy, which interface(s) and corresponding link(s) should be used to communicate the data packet to other network entities in the network.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.